<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE html><html xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <title>glBindBuffersRange - OpenGL 4 Reference Pages</title>
    <link rel="stylesheet" type="text/css" href="opengl-man.css"/>
    <meta name="generator" content="DocBook XSL Stylesheets V1.78.1"/>
    <script type="text/x-mathjax-config">
            MathJax.Hub.Config({
                MathML: {
                    extensions: ["content-mathml.js"]
                },
                tex2jax: {
                    inlineMath: [['$','$'], ['\\(','\\)']]
                }
            });
        </script>
    <script type="text/javascript" src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"/>
  </head>
  <body>
    <header/>
    <div class="refentry" id="glBindBuffersRange">
      <div class="titlepage"/>
      <div class="refnamediv">
        <h2>Name</h2>
        <p>glBindBuffersRange — bind ranges of one or more buffer objects to a sequence of indexed buffer targets</p>
      </div>
      <div class="refsynopsisdiv">
        <h2>C Specification</h2>
        <div class="funcsynopsis">
          <table style="border: 0; cellspacing: 0; cellpadding: 0;" class="funcprototype-table">
            <tr>
              <td>
                <code class="funcdef">void <strong class="fsfunc">glBindBuffersRange</strong>(</code>
              </td>
              <td>GLenum <var class="pdparam">target</var>, </td>
            </tr>
            <tr>
              <td> </td>
              <td>GLuint <var class="pdparam">first</var>, </td>
            </tr>
            <tr>
              <td> </td>
              <td>GLsizei <var class="pdparam">count</var>, </td>
            </tr>
            <tr>
              <td> </td>
              <td>const GLuint *<var class="pdparam">buffers</var>, </td>
            </tr>
            <tr>
              <td> </td>
              <td>const GLintptr *<var class="pdparam">offsets</var>, </td>
            </tr>
            <tr>
              <td> </td>
              <td>const GLintptr *<var class="pdparam">sizes</var><code>)</code>;</td>
            </tr>
          </table>
          <div class="funcprototype-spacer"> </div>
        </div>
      </div>
      <div class="refsect1" id="parameters">
        <h2>Parameters</h2>
        <div class="variablelist">
          <dl class="variablelist">
            <dt>
              <span class="term">
                <em class="parameter">
                  <code>target</code>
                </em>
              </span>
            </dt>
            <dd>
              <p>
                    Specify the target of the bind operation. <em class="parameter"><code>target</code></em> must be
                    one of <code class="constant">GL_ATOMIC_COUNTER_BUFFER</code>,
                    <code class="constant">GL_TRANSFORM_FEEDBACK_BUFFER</code>, <code class="constant">GL_UNIFORM_BUFFER</code> or
                    <code class="constant">GL_SHADER_STORAGE_BUFFER</code>.
                </p>
            </dd>
            <dt>
              <span class="term">
                <em class="parameter">
                  <code>index</code>
                </em>
              </span>
            </dt>
            <dd>
              <p>
                    Specify the index of the first binding point within the array specified by <em class="parameter"><code>target</code></em>.
                </p>
            </dd>
            <dt>
              <span class="term">
                <em class="parameter">
                  <code>count</code>
                </em>
              </span>
            </dt>
            <dd>
              <p>
                    Specify the number of contiguous binding points to which to bind buffers.
                </p>
            </dd>
            <dt>
              <span class="term">
                <em class="parameter">
                  <code>buffers</code>
                </em>
              </span>
            </dt>
            <dd>
              <p>
                    A pointer to an array of names of buffer objects to bind to the targets on the specified binding point, or <code class="constant">NULL</code>.
                </p>
            </dd>
            <dt>
              <span class="term">
                <em class="parameter">
                  <code>offsets</code>
                </em>
              </span>
            </dt>
            <dd>
              <p>
                        A pointer to an array of offsets into the corresponding buffer in <em class="parameter"><code>buffers</code></em> to
                        bind, or <code class="constant">NULL</code> if <em class="parameter"><code>buffers</code></em> is <code class="constant">NULL</code>.
                    </p>
            </dd>
            <dt>
              <span class="term">
                <em class="parameter">
                  <code>sizes</code>
                </em>
              </span>
            </dt>
            <dd>
              <p>
                        A pointer to an array of sizes of the corresponding buffer in <em class="parameter"><code>buffers</code></em> to
                        bind, or <code class="constant">NULL</code> if <em class="parameter"><code>buffers</code></em> is <code class="constant">NULL</code>.
                    </p>
            </dd>
          </dl>
        </div>
      </div>
      <div class="refsect1" id="description">
        <h2>Description</h2>
        <p>
            <code class="function">glBindBuffersRange</code> binds a set of <em class="parameter"><code>count</code></em> ranges from buffer objects whose names
            are given in the array <em class="parameter"><code>buffers</code></em> to the <em class="parameter"><code>count</code></em> consecutive binding
            points starting from index <em class="parameter"><code>index</code></em> of the array of targets specified
            by <em class="parameter"><code>target</code></em>. <em class="parameter"><code>offsets</code></em> specifies the address of an array containing
            <em class="parameter"><code>count</code></em> starting offsets within the buffers, and <em class="parameter"><code>sizes</code></em> specifies the
            address of an array of <em class="parameter"><code>count</code></em> sizes of the ranges. If <em class="parameter"><code>buffers</code></em> is <code class="constant">NULL</code> then
            <em class="parameter"><code>offsets</code></em> and <em class="parameter"><code>sizes</code></em> are ignored and <code class="function">glBindBuffersRange</code> unbinds any
            buffers that are currently bound to the referenced binding points. Assuming no errors are generated, it is equivalent to the following
            pseudo-code, which calls <a class="citerefentry" href="glBindBufferRange.xhtml"><span class="citerefentry"><span class="refentrytitle">glBindBufferRange</span></span></a>,
            with the exception that the non-indexed <em class="parameter"><code>target</code></em> is not changed by <code class="function">glBindBuffersRange</code>:</p>
        <pre class="programlisting">    for (i = 0; i &lt; count; i++) {
        if (buffers != NULL) {
            glBindBufferRange(target, first + i, buffers[i], offsets[i], sizes[i]);
        } else {
            glBindBufferRange(target, first + i, 0);
        }
    }</pre>
        <p>
            Each entry in <em class="parameter"><code>buffers</code></em>, <em class="parameter"><code>offsets</code></em>, and <em class="parameter"><code>sizes</code></em> will be
            checked individually and if found to be invalid, the state for that buffer binding index will not be changed and an
            error will be generated. However, the state for other buffer binding indices referenced by the command will
            still be updated.
        </p>
      </div>
      <div class="refsect1" id="notes">
        <h2>Notes</h2>
        <p>
            <code class="function">glBindBuffersBase</code> is available only if the GL version is 4.4 or higher.
        </p>
      </div>
      <div class="refsect1" id="errors">
        <h2>Errors</h2>
        <p>
            <code class="constant">GL_INVALID_ENUM</code> is generated if <em class="parameter"><code>target</code></em> is not
            <code class="constant">GL_ATOMIC_COUNTER_BUFFER</code>,
            <code class="constant">GL_TRANSFORM_FEEDBACK_BUFFER</code>, <code class="constant">GL_UNIFORM_BUFFER</code> or
            <code class="constant">GL_SHADER_STORAGE_BUFFER</code>.
        </p>
        <p>
            <code class="constant">GL_INVALID_OPERATION</code> is generated if <em class="parameter"><code>first</code></em> + <em class="parameter"><code>count</code></em> is greater
            than the number of target-specific indexed binding points.
        </p>
        <p>
            <code class="constant">GL_INVALID_OPERATION</code> is generated if any value in <em class="parameter"><code>buffers</code></em> is not
            zero or the name of an existing buffer object.
        </p>
        <p>
            <code class="constant">GL_INVALID_VALUE</code> is generated by if any value in <em class="parameter"><code>offsets</code></em> is less than zero or
            if any value in <em class="parameter"><code>sizes</code></em> is less than zero.
        </p>
        <p>
            <code class="constant">GL_INVALID_VALUE</code> is generated if any pair of values in <em class="parameter"><code>offsets</code></em>
            and <em class="parameter"><code>sizes</code></em> does not respectively satisfy the constraints described for those
            parameters for the specified target.
        </p>
      </div>
      <div class="refsect1" id="versions">
        <h2>Version Support</h2>
        <div class="informaltable">
          <table style="border-collapse: collapse; border-top: 2px solid ; border-bottom: 2px solid ; border-left: 2px solid ; border-right: 2px solid ; ">
            <colgroup>
              <col style="text-align: left; "/>
              <col style="text-align: center; " class="firstvers"/>
              <col style="text-align: center; "/>
              <col style="text-align: center; "/>
              <col style="text-align: center; "/>
              <col style="text-align: center; "/>
              <col style="text-align: center; "/>
              <col style="text-align: center; "/>
              <col style="text-align: center; "/>
              <col style="text-align: center; "/>
              <col style="text-align: center; "/>
              <col style="text-align: center; "/>
              <col style="text-align: center; " class="lastvers"/>
            </colgroup>
            <thead>
              <tr>
                <th style="text-align: left; border-right: 2px solid ; ">
                 
            </th>
                <th style="text-align: center; border-bottom: 2px solid ; " colspan="12">
                <span class="bold"><strong>OpenGL Version</strong></span>
            </th>
              </tr>
              <tr>
                <th style="text-align: left; border-right: 2px solid ; border-bottom: 2px solid ; ">
                <span class="bold"><strong>Function / Feature Name</strong></span>
            </th>
                <th style="text-align: center; border-right: 2px solid ; border-bottom: 2px solid ; ">
                <span class="bold"><strong>2.0</strong></span>
            </th>
                <th style="text-align: center; border-right: 2px solid ; border-bottom: 2px solid ; ">
                <span class="bold"><strong>2.1</strong></span>
            </th>
                <th style="text-align: center; border-right: 2px solid ; border-bottom: 2px solid ; ">
                <span class="bold"><strong>3.0</strong></span>
            </th>
                <th style="text-align: center; border-right: 2px solid ; border-bottom: 2px solid ; ">
                <span class="bold"><strong>3.1</strong></span>
            </th>
                <th style="text-align: center; border-right: 2px solid ; border-bottom: 2px solid ; ">
                <span class="bold"><strong>3.2</strong></span>
            </th>
                <th style="text-align: center; border-right: 2px solid ; border-bottom: 2px solid ; ">
                <span class="bold"><strong>3.3</strong></span>
            </th>
                <th style="text-align: center; border-right: 2px solid ; border-bottom: 2px solid ; ">
                <span class="bold"><strong>4.0</strong></span>
            </th>
                <th style="text-align: center; border-right: 2px solid ; border-bottom: 2px solid ; ">
                <span class="bold"><strong>4.1</strong></span>
            </th>
                <th style="text-align: center; border-right: 2px solid ; border-bottom: 2px solid ; ">
                <span class="bold"><strong>4.2</strong></span>
            </th>
                <th style="text-align: center; border-right: 2px solid ; border-bottom: 2px solid ; ">
                <span class="bold"><strong>4.3</strong></span>
            </th>
                <th style="text-align: center; border-right: 2px solid ; border-bottom: 2px solid ; ">
                <span class="bold"><strong>4.4</strong></span>
            </th>
                <th style="text-align: center; border-bottom: 2px solid ; ">
                <span class="bold"><strong>4.5</strong></span>
            </th>
              </tr>
            </thead>
            <tbody>
              <tr>
                <td style="text-align: left; border-right: 2px solid ; ">
                  <code class="function">glBindBuffersRange</code>
                </td>
                <td style="text-align: center; border-right: 2px solid ; ">-</td>
                <td style="text-align: center; border-right: 2px solid ; ">-</td>
                <td style="text-align: center; border-right: 2px solid ; ">-</td>
                <td style="text-align: center; border-right: 2px solid ; ">-</td>
                <td style="text-align: center; border-right: 2px solid ; ">-</td>
                <td style="text-align: center; border-right: 2px solid ; ">-</td>
                <td style="text-align: center; border-right: 2px solid ; ">-</td>
                <td style="text-align: center; border-right: 2px solid ; ">-</td>
                <td style="text-align: center; border-right: 2px solid ; ">-</td>
                <td style="text-align: center; border-right: 2px solid ; ">-</td>
                <td style="text-align: center; border-right: 2px solid ; ">✔</td>
                <td style="text-align: center; ">✔</td>
              </tr>
            </tbody>
          </table>
        </div>
      </div>
      <div class="refsect1" id="seealso">
        <h2>See Also</h2>
        <p>
            <a class="citerefentry" href="glGenBuffers.xhtml"><span class="citerefentry"><span class="refentrytitle">glGenBuffers</span></span></a>,
            <a class="citerefentry" href="glDeleteBuffers.xhtml"><span class="citerefentry"><span class="refentrytitle">glDeleteBuffers</span></span></a>,
            <a class="citerefentry" href="glBindBuffer.xhtml"><span class="citerefentry"><span class="refentrytitle">glBindBuffer</span></span></a>,
            <a class="citerefentry" href="glBindBufferBase.xhtml"><span class="citerefentry"><span class="refentrytitle">glBindBufferBase</span></span></a>,
            <a class="citerefentry" href="glBindBufferRange.xhtml"><span class="citerefentry"><span class="refentrytitle">glBindBufferRange</span></span></a>,
            <a class="citerefentry" href="glBindBuffersRange.xhtml"><span class="citerefentry"><span class="refentrytitle">glBindBuffersRange</span></span></a>,
            <a class="citerefentry" href="glMapBuffer.xhtml"><span class="citerefentry"><span class="refentrytitle">glMapBuffer</span></span></a>,
            <a class="citerefentry" href="glUnmapBuffer.xhtml"><span class="citerefentry"><span class="refentrytitle">glUnmapBuffer</span></span></a>
        </p>
      </div>
      <div class="refsect1" id="Copyright">
        <h2>Copyright</h2>
        <p>
            Copyright <span class="trademark"/>© 2013-2014 Khronos Group.
            This material may be distributed subject to the terms and conditions set forth in
            the Open Publication License, v 1.0, 8 June 1999.
            <a class="link" href="http://opencontent.org/openpub/" target="_top">http://opencontent.org/openpub/</a>.
        </p>
      </div>
    </div>
    <footer/>
  </body>
</html>
